package com.gwi.springboot.vo;

import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 现有代金券实体类为Voucher。
 * 标记一下
 * 代金券的核销逻辑为:每个订单可核销多张代金券(直至订单金额被全部抵扣掉或代金券全部被核销为止)，
 * 优先核销先到期的券，到期日期相同时优先核销面额低的券。
 * 假设顾客下单结账时其账户中有若干张代金券，请补充下面的函数计算出将被核销的代金券。
 */


public class Voucher {
    /**
     * 劵号
     */
    private String voucherNo;

    /**
     * 失效日期
     */
    private Date expiryDate;

    /**
     * 面额
     */
    private BigDecimal faceValue;

    public String getVoucherNo() {
        return voucherNo;
    }

    public void setVoucherNo(String voucherNo) {
        this.voucherNo = voucherNo;
    }

    public Date getExpiryDate() {
        return expiryDate;
    }

    public void setExpiryDate(Date expiryDate) {
        this.expiryDate = expiryDate;
    }

    public BigDecimal getFaceValue() {
        return faceValue;
    }

    public void setFaceValue(BigDecimal faceValue) {
        this.faceValue = faceValue;
    }

    public Voucher(String voucherNo, Date expiryDate, BigDecimal faceValue) {
        this.voucherNo = voucherNo;
        this.expiryDate = expiryDate;
        this.faceValue = faceValue;
    }

    @Override
    public String toString() {
        return "Voucher{" +
                "voucherNo='" + voucherNo + '\'' +
                ", expiryDate=" + expiryDate +
                ", faceValue=" + faceValue +
                '}';
    }
}
